<?php
namespace Admin\Model;

class CategoriesModel extends \Think\Model
{
	//自动验证
	protected $_validate = array(
		array('id', '/^\d+$/', '参数错误', 1, 'regex', 2),
		array('name', '/^[\w\x{4e00}-\x{9fa5}]{2,}$/u', '请输入正确的基金分类名称', 1),
		array('parent_id', '/^-?\d+$/', '请选择父级分类', 1),
		array('description', 'require', '请输入基金分类描述', 1),
	);
	
	//自动完成
	protected $_auto = array(
		array('status', '1'),
		array('create_time', 'time', 1, 'function'),
		array('update_time', 'time', 3, 'function'),
	);
	
	/**
	 * 添加基金分类
	 * @author 刘新
	 */
	public function addFundCat()
	{
		//创建为数据对象
		$res = $this->create();
		if(!$res) return array('error' => 1, 'msg' => $this->getError());
		$return = array('error' => 0, 'msg' => '添加成功');
		
		//添加基金分类
		$res = $this->add();

		if(!$res) {
			$return['error'] = 1;
			$return['msg'] = '合同添加失败';
		}
		
		return $return;
	}
	
	/**
	 * 编辑基金分类
	 * @author 刘新
	 */
	public function editFundCat()
	{
		//创建为数据对象
		$res = $this->create();
		if(!$res) return array('error' => 1, 'msg' => $this->getError());
		$return = array('error' => 0, 'msg' => '编辑成功');
	
		//开启事务
		$this->startTrans();
		
		try {
			//编辑基金分类
			$res = $this->save();
			if($res === false) {
				throw new \Think\Exception($this->getError());
			}
			
			//修改基金分类关系表中的数据
			$res = M('FundCategories')->where(array('cat_id' => I('id'), 'status' => 1))->save(array('cat_name' => I('name')));
			if($res === false) {
				throw new \Think\Exception(M('FundCategories')->getError());
			}
			
			$this->commit();
		} catch (\Think\Exception $e) {
			$this->rollback();
			$return['error'] = 1;
			$return['msg'] = $e->getMessage();
		}
	
		return $return;
	}
}